package com.t.bricks.bussiness.db.mapper.useranddepartment;

import java.util.List;

import org.apache.ibatis.annotations.Mapper;
import org.apache.ibatis.annotations.Param;

import com.t.bricks.bussiness.db.entity.useranddepartment.UserAndDepartment;
import com.t.bricks.bussiness.model.useranddepartment.LoginUser;

@Mapper
public interface UserAndDepartmentMapper {

	/**
	 * 根据关键值查询数量
	 * @Param UserAndDepartment
	 * @return
	 */
	int findCountByKey(UserAndDepartment UserAndDepartment);
	
	/**
	 * 清理已经废弃的信息
	 * @return
	 */
	int delDiscard();

	/**
	 * 根据人员编号取与部门关联的信息
	 * @param sUserId
	 * @return
	 */
	List<UserAndDepartment> findBysUserId(
		@Param("sUserId") String sUserId
	);
	
	/**
	 * 批量保存人员所属部门关联信息
	 * @param list 部门与人员关系对象集合
	 * @return
	 */
	int save(@Param("list") List<UserAndDepartment> list);

	/**
	 * 清除所有该人员与部门的关联信息
	 * @param sUserId 人员编号
	 * @return
	 */
	int del(String sUserId);
	
	/**
	 * 查找指定人员的记录数
	 * @param sUserId
	 * @return
	 */
	int findCountByUser(String sUserId);

	/**
	 * 根据当前部门编号查询所有该部门下的子部门员工(包括该部门)
	 * @param sDeparmentId 部门编号
	 * @param 仅限主部门 部门编号
	 * @return
	 */
	List<LoginUser> findByDepartmentId(
		@Param("sDeparmentId") String sDeparmentId,
		@Param("iMainDeparment") Integer iMainDeparment);
	
}
